<?php
class Account extends AppModel
{
  var $hasMany = array("Comment", "Favorite");
  
  var $validate = array(
    "email" => array(
      "rule1" => array(
        "rule" => "isUnique",
        "message" => "Địa chỉ hộp thư này đã được đăng ký"
      ),
      "rule2" => array(
        "rule" => "email",
        "message" => "Xin vui lòng nhập địa chỉ hộp thư hợp lệ"
      )
    ),
    "name" => array(
      "rule1" => array(
        "rule" => array("maxLength", 20),
        "message" => "Tên hiển thị không được dài quá 20 ký tự"
      ),
      "rule2" => array(
        "rule" => "isUnique",
        "message" => "Tên hiển thị đã được sử dụng"
      ),
      "rule3" => array(
        "rule" => "notEmpty",
        "message" => "Xin vui lòng nhập tên hiển thị"
      )
    ),
    "password" => array(
      "rule1" => array(
        "rule" => array("maxLength", 20),
        "message" => "Mật mã không được dài quá 20 ký tự"
      ),
      "rule2" => array(
        "rule" => array("minLength", 6),
        "message" => "Mật mã phải có ít nhất 6 ký tự"
      ),
      "rule3" => array(
        "rule" => "notEmpty",
        "message" => "Xin vui lòng nhập mật mã"
      )
    )
  );
  
  function getUniqueCode($length = "")
  {  
    $code = md5(uniqid(rand(), true));
    if ($length != "") return substr($code, 0, $length);
    else return $code;
  }
  
  function convertPermalink($str)
  {
    if (strlen($str) == 0) return $str;
    $str = preg_replace("/á|à|ả|ã|ạ|ã|ă|ắ|ằ|ẳ|ẵ|ặ|â|ấ|ầ|ẩ|ẫ|ậ/",'a',$str);
    $str = preg_replace("/Á|À|Ả|Ã|Ạ|Ă|Ắ|Ằ|Ẳ|Ẵ|Ặ|Â|Ấ|Ầ|Ẩ|Ẫ|Ậ/",'A',$str);    
    $str = preg_replace("/é|è|ẻ|ẽ|ẹ|ê|ế|ề|ể|ễ|ễ|ệ/",'e',$str);
    $str = preg_replace("/É|È|Ẻ|Ẽ|Ẹ|Ê|Ế|Ề|Ể|Ễ|Ệ/",'E',$str);
    $str = preg_replace("/ú|ù|ủ|ũ|ụ|ư|ứ|ừ|ử|ữ|ự/",'u',$str);
    $str = preg_replace("/Ú|Ù|Ủ|Ũ|Ụ|Ư|Ứ|Ừ|Ử|Ữ|Ự/",'U',$str);
    $str = preg_replace("/ó|ò|ỏ|õ|ọ|ơ|ớ|ờ|ở|ỡ|ợ|ô|ố|ồ|ổ|ỗ|ộ/",'o',$str);
    $str = preg_replace("/Ó|Ò|Ỏ|Õ|Ọ|Ơ|Ớ|Ờ|Ở|Ỡ|Ợ|Ô|Ố|Ồ|Ổ|Ỗ|Ộ/",'O',$str);
    $str = preg_replace("/í|ì|ỉ|ĩ|ị/",'i',$str);
    $str = preg_replace("/Í|Ì|Ỉ|Ĩ|Ị/",'I',$str);
    $str = preg_replace("/ý|ỳ|ỷ|ỹ|ỵ/",'y',$str);
    $str = preg_replace("/Ý|Ỳ|Ỷ|Ỹ|Ỵ/",'Y',$str);
    $str = preg_replace("/đ/",'d',$str);
    $str = preg_replace("/Đ/",'D',$str);
    $str = strtolower($str);
    $str = preg_replace('/[^a-z0-9_]/i', '_', $str); 
    return $str;
  }

  function afterSave()
  {
    $this->data = $this->read();
    if (strlen($this->data["Account"]["password"]) < 32)
    {
      $salt = $this->getUniqueCode(6);
      $encoded_password = md5($this->data["Account"]["password"].$salt);
      $fields = array("salt" => "'".$salt."'", "password" => "'".$encoded_password."'");
      $this->updateAll($fields, array("Account.id" => $this->id));
    }
    if (empty($this->data["Account"]["permalink"]))
    {
      $permalink = $this->convertPermalink($this->data["Account"]["name"]);
      $fields = array("permalink" => "'".$permalink."'");
      $this->updateAll($fields, array("Account.id" => $this->id));
    }

  }
  
}
?>
